A computer network is a collection of interconnected computing devices that can exchange data and share resources. In a packet-based network, such as an Ethernet network, the computing devices communicate data by dividing the data into variable-length blocks called packets, which are individually routed across the network from a source device to a destination device. The destination device extracts the data from the packets and assembles the data into its original form.
Certain devices, referred to as routers, maintain routing information representative of a topology of the network. The routers exchange routing information so as to maintain an accurate representation of available routes through the network. A “route” can generally be defined as a path between two locations on the network. Upon receiving an incoming data packet, a router examines information within the packet, often referred to as a “key,” to select an appropriate next hop to which to forward the packet in accordance with the routing information.
Routers may include one or more forwarding components, e.g., packet forwarding engines, and a switch fabric. Packet forwarding engines may receive and send data via interface cards. The switch fabric provides an interconnect mechanism for forwarding data between the packet forwarding engines for transmission over a network, e.g., the Internet. In some examples, a router or switching device may employ a distributed, multi-stage switch fabric architecture, in which network packets traverse multiple stages of the switch fabric located in distributed forwarding components of the router to travel from an ingress point of the switch fabric to an egress point of the switch fabric.
Routers use routing protocols to exchange routing information. Routers often maintain the routing information in the form of one or more routing tables or other data structures. Routers may generate and maintain forwarding information in accordance with the routing information. The forwarding information associates network routes with specific forwarding next hops and corresponding interface ports of the router. The forwarding information may, in some examples, be a subset of the information contained within routing information. The process of generating the association of the interface ports with the next hops in forwarding information is generally referred to as route resolution.
Border Gateway Protocol (BGP) is a routing protocol that routers may use to exchange information associated with routing and reachability between network devices in a network, such as between a set of edge devices. When two routers initially connect, the routers typically exchange all of their routing information. The routers then send control messages to incrementally update the routing information when the network topology changes. For example, the routers may send update messages to advertise newly available routes, and to withdraw routes that are no longer available.
In some examples, BGP can be used to advertise that a specified router has bound a specified one or more MPLS labels to a network destination represented by a specified address prefix. This can be done by sending a BGP update message having a Network Layer Reachability Information field containing the prefix and the MPLS label(s), and a Next Hop field that identifies the node at which said prefix is bound to the label(s).